package Result;

import weka.classifiers.Evaluation;
import Sampling.SamplingAbstractClass;

/*****************************************************************
* Name : Result
* Aim : This class aims to keep a base class for the accuracy, precision and recall values. 
*****************************************************************/
public class ResultClass 
{
	/* Ask test/train /validation accuracy  is neccessary  ??*/
	/*Keep general informations of result*/
	ResultIdentificationClass identifier;
	Evaluation evaluationResultOfWeka;
	EvaluationClass evaluationResult;	
	SamplingAbstractClass currentSampling;
	
	double accuracy;
	double startAccuracy;
	double endAccuracy;
	
	public double getStartAccuracy() {
		return startAccuracy;
	}

	public void setStartAccuracy(double startAccuracy) {
		this.startAccuracy = startAccuracy;
	}

	public double getEndAccuracy() {
		return endAccuracy;
	}

	public void setEndAccuracy(double endAccuracy) {
		this.endAccuracy = endAccuracy;
	}

	public double getAccuracy() {
		return accuracy;
	}

	public void setAccuracy(double accuracy) {
		this.accuracy = accuracy;
	}

	/*On test*/
    double[] accuracyListSeperatedClass;
    
       
    public ResultClass(ResultIdentificationClass identifier)
    {           	
       	this.identifier=identifier;
    }
    
    public void setSampling(SamplingAbstractClass currentSampling)
    {
    	this.currentSampling = currentSampling;
    	evaluationResult = new EvaluationClass(currentSampling);
    }
    
    public Evaluation getEvaluationResultOfWeka()
    {
    	return evaluationResultOfWeka;
    }
    
    public EvaluationClass getEvaluationResult()
    {
    	return evaluationResult;
    }
    
    public void setEvaluationResultOfWeka(Evaluation evaluationResultOfWeka)
    {
    	this.evaluationResultOfWeka = evaluationResultOfWeka;
    }
    
	public ResultIdentificationClass getIdentifier() 
	{
		return identifier;
	}
	
	public void setIdentifier(ResultIdentificationClass identifier) 
	{
		this.identifier = identifier;
	}

    public double[] getAccuracyListClassifiedClass() 
	{
		return accuracyListSeperatedClass;
	}
	
    public void setAccuracyListClassifiedClass(double[] accuracyListClassifiedClass) 
	{
		this.accuracyListSeperatedClass = accuracyListClassifiedClass;
	}
}
